A ferromagnetic tunnel junction (MTJ) element for use as a spin-torque transfer magnetic random-access memory (MRAM) has a configuration in which a tunnel barrier layer is sandwiched between two ferromagnetic layers. One of the ferromagnetic layers is a reference layer whose magnetization direction is fixed even when a current flows therethrough. The other ferromagnetic layer is a storage layer whose magnetization direction is variable when a current flows therethrough. The magnetization direction of the storage layer has two states. One state is correlated with a logical value “0” and the other state is correlated with a logical value “1”, thereby allowing the MTJ element to be used as a memory cell.
Data is written into the MTJ element by spin-torque transfer magnetization switching. Specifically, the magnetization direction of the storage layer is reversed by a spin-transfer torque which is generated due to a write current caused to flow through the MTJ element. Changing the direction of the write current allows the magnetization direction to be reversed to one of the two states of the storage layer.
The MTJ element has a resistance value that varies depending on the magnetization direction of the storage layer. Data is read from the MTJ element in the following manner. That is, a small read current, with which no magnetization switching occurs, is caused to flow through the MTJ element and the resistance value thereof is measured to be determined as a low resistance value or a high resistance value.
When a pulse (herein referred to as “random number generating pulse”) having an appropriately selected current value (herein referred to as “random number generating current”) between a write current value, which causes magnetization switching, and a read current value, which does not cause magnetization switching, is caused to flow through the MTJ element, the magnetization can be reversed with a magnetization switching probability larger than 0.0 and smaller than 1.0. In this regard, “Random number generator by current induced magnetization switching” in Proceedings of the 31st annual conference on magnetics in Japan (2007) 13pC-15 (p. 214) (Fukushima, Kubota, Yakushiji, Yuasa, and Ando) discloses a technique in which a random number generating pulse having a current value with a magnetization switching probability to the high resistance state between 0.0 and 1.0 is caused to flow through the MTJ element which is reset to the low resistance state in advance, thereby making it possible to randomly change the state of the MTJ element and to use the MTJ element as a random number generator. The same effect can also be obtained as a matter of course by causing a random number generating pulse having a current value with a magnetization switching probability to the low resistance state between 0.0 and 1.0 to flow through the MTJ element which is reset to the high resistance state in advance. The current value with a magnetization switching probability between 0.0 and 1.0 is herein referred to as “a current for stochastically reversing a state”.
The use of an MTJ element enables generation of random numbers with excellent characteristics based on natural phenomena. In this case, it is desirable to cause a current with a magnetization switching probability of 0.5 to flow so as to achieve a balance between the generated random numbers, i.e., so as to balance the probability of occurrence of “0” with the probability of occurrence of “1”. However, the magnetization switching probability of the MTJ element with respect to a current value of a write pulse set during the design process is not always equal to 0.5 due to factors such as a variation in size of the produced MTJ element, for example. As a result, an imbalance occurs between the probability of occurrence of “0” and the probability of occurrence of “1”.
An embodiment of the present invention provides a random number generator and a random number generating method, which are capable of suppressing an imbalance between random numbers due to variations upon random number generation using an MTJ element.